Manufactured products may include any number of attributes, features, specifications, characteristics, parameters, etc. Such attributes may include, for example, size, dimensions, weight, speed, power, output, fuel consumption estimation, model number, manufacturer information, capabilities, quality information, safety information, and so on, depending on the particular type of product being produced. These attributes are likely to change during the designing and manufacturing stages of a product. For instance, the designing stage of a product is usually an iterative process involving minor and sometimes major modifications to the product's design.
When the design of a product reaches a certain stage, the manufacturer can set a release date to indicate a future date when the product can be sold. The first release of a product is sometimes referred to a first version. Oftentimes, however, the design stage does not end with the setting of the first release date. Instead, the design can be tweaked or even changed drastically from the first version to create multiple versions having design modifications over a period of time. In this sense, many different versions of the product can be planned for release at various stages of the design and manufacture of the product.
Regarding the “versioning” of a product, or naming of versions, a scheme that was originally developed for software products can also be adapted for versioning many other types of products. One such versioning scheme includes defining a first version as “1.0.” Thereafter, minor changes to the design can be given versions 1.1, 1.2, 1.3, and so on. Design changes to these minor changes can even be broken down further, such as 1.1.1, 1.1.2, 1.1.3, and so on. Major changes under this scheme can involve increasing the version numbers by greater amounts, such as 2.0, 3.0, 4.0, and so on. These and other schemes for describing versions of a product are known in the art. It should be noted that some versions may correspond to specific release dates. Alternatively, some versions can simply correspond to a design change that is to be released with a later version.
A database can be used to store each version of the product information. Instead of overwriting old data, each new version usually includes an additional copy of all the product's attributes for that version, even when only minor changes are made from one version to the next. Thus, the straight forward approach to versioning information is to duplicate an entire information snapshot for each version and then make the changes as needed.